package com.e;

import org.junit.Test;

/**
 * 插入排序
 直接插入排序算法
 */
public  class InsertSort  {
    public static void main(String[] args) {
        int[] arr=new int[20];



    }

    /**
     * 0.初始状态 3，1，5，7，2，4，9，6（共8个数）
     *
     * 　　   有序表：3；无序表：1，5，7，2，4，9，6
     *
     * 　　1.第一次循环，从无序表中取出第一个数 1，把它插入到有序表中，使新的数列依旧有序
     *
     * 　　   有序表：1，3；无序表：5，7，2，4，9，6
     *
     * 　　2.第二次循环，从无序表中取出第一个数 5，把它插入到有序表中，使新的数列依旧有序
     *
     * 　　   有序表：1，3，5；无序表：7，2，4，9，6
     *
     * 　　3.第三次循环，从无序表中取出第一个数 7，把它插入到有序表中，使新的数列依旧有序
     *
     * 　　   有序表：1，3，5，7；无序表：2，4，9，6
     *
     * 　　4.第四次循环，从无序表中取出第一个数 2，把它插入到有序表中，使新的数列依旧有序
     *
     * 　　   有序表：1，2，3，5，7；无序表：4，9，6
     *
     * 　　5.第五次循环，从无序表中取出第一个数 4，把它插入到有序表中，使新的数列依旧有序
     *
     * 　　   有序表：1，2，3，4，5，7；无序表：9，6
     *
     * 　　6.第六次循环，从无序表中取出第一个数 9，把它插入到有序表中，使新的数列依旧有序
     *
     * 　　   有序表：1，2，3，4，5，7，9；无序表：6
     *
     * 　　7.第七次循环，从无序表中取出第一个数 6，把它插入到有序表中，使新的数列依旧有序
     *
     * 　　   有序表：1，2，3，4，5，6，7，9；无序表：（空）
     *  @param arr  无序的数组
      * @return
     */
    public int[] sort(int[] arr){
        int[] newArr=new int[arr.length];
        newArr[0]=arr[0];
        int first=newArr[0];
        for (int i = 0; i <arr.length ; i++) {
                while (first>arr[i]){
                    int temp=first;
                    first=arr[i];
                    arr[i]=temp;
                    first=newArr[i];
                }
        }
        return null;
    }
    @Test
    public void t(){
        int [] a={4,1,2,3};
        sort(a);
    }
}
